#pragma once
#include <iostream>
#include <functional>

typedef std::function<int(int, int)> fun_t;

struct Task
{
public:
    Task(){}

    Task(int x, int y , fun_t func)
        :_x(x)
        ,_y(y)
        ,_func(func)
        {

        }
    int operator()()
    {
        return _func(_x,_y);
    }
    
    int _x;
    int _y;
    fun_t _func;
};